package com.reactim.message.config.validation;

import jakarta.validation.Constraint;
import jakarta.validation.Payload;
import java.lang.annotation.*;

/**
 * 批次大小数组验证注解
 * 验证批次大小数组是否有效
 */
@Target({ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = BatchSizesValidator.class)
@Documented
public @interface ValidBatchSizes {
    
    String message() default "批次大小数组必须包含至少一个大于0的值";
    
    Class<?>[] groups() default {};
    
    Class<? extends Payload>[] payload() default {};
    
    /**
     * 最小批次大小
     */
    int minSize() default 1;
    
    /**
     * 最大批次大小
     */
    int maxSize() default 100000;
    
    /**
     * 最小数组长度
     */
    int minLength() default 1;
}